public static function buildFromConfiguration(): Database
    {
        if (!is_null(self::$sharedInstance)) {
             return self::$sharedInstance;
        }
        $config = Configuration::getDatabaseConfiguration();
        $instance = self::initializeFromConfiguration($config);
        if ($config['shared'] ?? false) {
            self::$sharedInstance = $instance;
        }
        return $instance;
    }