**Describe the issue**
We have to set macro or to pass explicitly shard and replica name to create table in DatabaseReplicated

{
    bool created = false;
    try
    {
        
        fs::create_directories(fs::path(metadata_path).parent_path());
        
        
        
        
        created = fs::create_directory(metadata_path);
        DatabasePtr impl = getImpl(create, metadata_path, context);
        if (impl && context->hasQueryContext() && context->getSettingsRef().log_queries)
            context->getQueryContext()->addQueryFactoriesInfo(Context::QueryLogFactories::Database, impl->getEngineName());
        
        if (impl && create.comment)
            impl->setDatabaseComment(create.comment->as<ASTLiteral>()->value.safeGet<String>());
        return impl;
    }
    catch (...)
    {
        if (created && fs::exists(metadata_path))
            fs::remove_all(metadata_path);
        throw;
    }
}
template <typename ValueType>
static inline ValueType safeGetLiteralValue(const ASTPtr &ast, const String &engine_name)