**Describe the unexpected behaviour**
On connection with server having self-signed certificate warning message and acceptance request issued twice.

**How to reproduce**
Provide server with self-signed certificate and make a secure connection.

**Expected behavior**
Only one warning message and acceptance request should be issued.

**Error message and/or stacktrace**
```
ubuntu@ip-172-31-42-195:~/ClickHouse-comb/build_debug/programs$ ./clickhouse-client -s --port 9541
ClickHouse client version 22.9.1.1.
Connecting to localhost:9541 as user default.

WARNING: Certificate verification failed
----------------------------------------
Issuer Name:  /CN=another
Subject Name: /CN=another

The certificate yielded the error: self signed certificate

The error occurred in the certificate chain at position 0
Accept the certificate (y,n)? y
Connected to ClickHouse server version 22.9.1 revision 54460.

Warnings:
 * Server was built in debug mode. It will work slowly.

ip-172-31-42-195.us-east-2.compute.internal :)
WARNING: Certificate verification failed
----------------------------------------
Issuer Name:  /CN=another
Subject Name: /CN=another

The certificate yielded the error: self signed certificate

The error occurred in the certificate chain at position 0
Accept the certificate (y,n)?
```
{
    
    constexpr UInt64 min_server_revision_to_load_warnings = DBMS_MIN_PROTOCOL_VERSION_WITH_VIEW_IF_PERMITTED;
    if (server_revision < min_server_revision_to_load_warnings)
        return {};
    std::vector<String> messages;
    connection->sendQuery(connection_parameters.timeouts,
                          "SELECT * FROM viewIfPermitted(SELECT message FROM system.warnings ELSE null('message String'))",
                          {} ,
                          "" ,
                          QueryProcessingStage::Complete,
                          &global_context->getSettingsRef(),
                          &global_context->getClientInfo(), false, {});
    while (true)
    {
        Packet packet = connection->receivePacket();
        switch (packet.type)
        {
            case Protocol::Server::Data:
                if (packet.block)
                {
                    const ColumnString & column = typeid_cast<const ColumnString &>(*packet.block.getByPosition(0).column);
                    size_t rows = packet.block.rows();
                    for (size_t i = 0; i < rows; ++i)
                        messages.emplace_back(column[i].get<String>());