**Describe what's wrong**
clickhouse creates lots of system log tables if config storage settings for system log table

**Does it reproduce on recent release?**
22.1

**How to reproduce**

* Which ClickHouse server version to use
22.1
* Non-default settings, if any
config query_log table as below:
```
query_log:
  partition_by:
    "@remove": 1
  engine: |
    ENGINE = MergeTree PARTITION BY (event_date)
    ORDER BY (event_time)
    TTL event_date + INTERVAL 14 DAY DELETE
    SETTINGS ttl_only_drop_parts=1
```

**Expected behavior**
clickhouse should not create new system log tables if the table is not changed.

**Error message and/or stacktrace**
2022.02.26 19:53:28.039097 [ 1197451 ] {} <Debug> SystemLog (system.query_log): Existing table system.query_log for system log has obsolete or different structure. Renaming it to query_log_13.
Old: CREATE TABLE system.query_log (....) ENGINE = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + toIntervalDay(14) 
New: CREATE TABLE system.query_log (....) ENGINE = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + toIntervalDay(14) SETTINGS ttl_only_drop_parts = 1

**Additional context**
in this commit https://github.com/ClickHouse/ClickHouse/commit/5fafeea76330db8037f2beddd8a4386cad54505a, v3: SETTINGS of MergeTree in old CREATE TABLE query is reset before comparing with new create query.


if (config.has(config_prefix + ".partition_by"))
            throw Exception("If 'engine' is specified for system table, "
                "PARTITION BY parameters should be specified directly inside 'engine' and 'partition_by' setting doesn't make sense",
                ErrorCodes::BAD_ARGUMENTS);
        if (config.has(config_prefix + ".ttl"))
            throw Exception("If 'engine' is specified for system table, "
                            "TTL parameters should be specified directly inside 'engine' and 'ttl' setting doesn't make sense",
                            ErrorCodes::BAD_ARGUMENTS);
        engine = config.getString(config_prefix + ".engine");
    }
    else
    {
        String partition_by = config.getString(config_prefix + ".partition_by", "toYYYYMM(event_date)");
        engine = "ENGINE = MergeTree";
        if (!partition_by.empty())
            engine += " PARTITION BY (" + partition_by + ")";
        String ttl = config.getString(config_prefix + ".ttl", "");
        if (!ttl.empty())
            engine += " TTL " + ttl;
        engine += " ORDER BY (event_date, event_time)";
    }
    
    ParserStorage storage_parser;
    parseQuery(storage_parser, engine.data(), engine.data() + engine.size(),
            "Storage to create table for " + config_prefix, 0, DBMS_DEFAULT_MAX_PARSER_DEPTH);
    size_t flush_interval_milliseconds = config.getUInt64(config_prefix + ".flush_interval_milliseconds",
                                                          DEFAULT_SYSTEM_LOG_FLUSH_INTERVAL_MILLISECONDS);
    return std::make_shared<TSystemLog>(context, database, table, engine, flush_interval_milliseconds);
}
ASTPtr getCreateTableQueryClean(const StorageID & table_id, ContextPtr context)