I don't understand why.
global_context->setCurrentDatabaseNameInGlobalContext(default_database);
    LOG_INFO(log, "Loading user defined objects from {}", path_str);
    try
    {
        UserDefinedSQLObjectsLoader::instance().loadObjects(global_context);
    }
    catch (...)
    {
        tryLogCurrentException(log, "Caught exception while loading user defined objects");
        throw;
    }
    LOG_DEBUG(log, "Loaded user defined objects");
    LOG_INFO(log, "Loading metadata from {}", path_str);
    try
    {
        auto & database_catalog = DatabaseCatalog::instance();
        
        database_catalog.initializeAndLoadTemporaryDatabase();
        loadMetadataSystem(global_context);
        
        global_context->initializeSystemLogs();
        global_context->setSystemZooKeeperLogAfterInitializationIfNeeded();
        
        attachSystemTablesServer(global_context, *database_catalog.getSystemDatabase(), has_zookeeper);
        attachInformationSchema(global_context, *database_catalog.getDatabase(DatabaseCatalog::INFORMATION_SCHEMA));
        attachInformationSchema(global_context, *database_catalog.getDatabase(DatabaseCatalog::INFORMATION_SCHEMA_UPPERCASE));
        
        
        
        database_catalog.loadMarkedAsDroppedTables();