Retrieving non-existing secrets

Changed handling of non-existing secrets.

Overview

Fetching a non-existing secret using the secret() function now throws an exception instead of returning null in the open-source version, aligning the open-source behavior with the behavior in the Enterprise Edition.