**How to reproduce**
Clickhouse version 21.5

```
cat /etc/clickhouse-server/users.xml
<?xml version="1.0"?>
<yandex>
    <!-- Profiles of settings. -->
    <profiles>
        <!-- Default settings. -->
        <default>
            <data_type_default_nullable>1</data_type_default_nullable>
            <load_balancing>random</load_balancing>
        </default>
....

2021.04.04 01:23:42.453678 [ 29048 ] {} <Error> Application: DB::Exception: Nested type Array(UInt64) cannot be inside Nullable type: Cannot attach table `system`.`crash_log` from metadata file /var/lib/clickhouse/metadata/system/crash_log.sql from query ATTACH TABLE system.crash_log (`event_date` Date, `event_time` DateTime, `timestamp_ns` UInt64, `signal` Int32, `thread_id` UInt64, `query_id` String, `trace` Array(UInt64), `trace_full` Array(String), `version` String, `revision` UInt32, `build_id` String) ENGINE = MergeTree ORDER BY (event_date, event_time) SETTINGS index_granularity = 8192: while loading database `system` from path /var/lib/clickhouse/metadata/system
```
[[maybe_unused]] bool done = doCreateTable(create, properties);
        assert(done);
        ast_drop->table = create.table;
        ast_drop->database = create.database;
        ast_drop->kind = ASTDropQuery::Drop;
        created = true;
        if (!create.replace_table)
            return fillTableIfNeeded(create);
        auto ast_rename = std::make_shared<ASTRenameQuery>();
        ASTRenameQuery::Element elem
        {
            ASTRenameQuery::Table{create.database, create.table},
            ASTRenameQuery::Table{create.database, table_to_replace_name}
        };
        ast_rename->elements.push_back(std::move(elem));
        ast_rename->exchange = true;
        InterpreterRenameQuery(ast_rename, getContext()).execute();
        replaced = true;
        InterpreterDropQuery(ast_drop, getContext()).execute();
        create.table = table_to_replace_name;
        return fillTableIfNeeded(create);
    }
    catch (...)
    {
        if (created && create.replace_table && !replaced)
            InterpreterDropQuery(ast_drop, getContext()).execute();
        throw;
    }
}
BlockIO InterpreterCreateQuery::fillTableIfNeeded(const ASTCreateQuery & create)