public List<GenericRecord> queryAll(String sqlQuery, Map<String, Object> params, QuerySettings settings) {
        if (settings == null) {
            settings = new QuerySettings();
        }
        try {
            int operationTimeout = getOperationTimeout();
            settings.setFormat(ClickHouseFormat.RowBinaryWithNamesAndTypes)
                    .waitEndOfQuery(true);
            CompletableFuture<QueryResponse> f = query(sqlQuery, params, settings);
            try (QueryResponse response = operationTimeout == 0 ? f.get() : f.get(operationTimeout, TimeUnit.MILLISECONDS)) {
                List<GenericRecord> records = new ArrayList<>();
                if (response.getResultRows() > 0) {
                    RowBinaryWithNamesAndTypesFormatReader reader =
                            (RowBinaryWithNamesAndTypesFormatReader) newBinaryFormatReader(response);

                    Map<String, Object> record;
                    while (reader.readRecord((record = new LinkedHashMap<>()))) {
                        records.add(new MapBackedRecord(record, reader.getConvertions(), reader.getSchema()));
                    }
                }
                return records;
            }
        } catch (ExecutionException e) {
            throw new ClientException("Failed to get query response", e.getCause());
        } catch (Exception e) {
            throw new ClientException("Failed to get query response", e);
        }
    }
<p>Queries data in descriptive format and reads result to a collection.</p>
<p>Use this method for queries that would return only a few records only because client
will read whole dataset and convert it into a list of GenericRecord</p>

See {@link #query(String, Map, QuerySettings)} for parametrized queries.
@param sqlQuery - SQL statement
@param params - query parameters
@param settings  - operation settings
@return - complete list of records
client-v2/src/main/java/com/clickhouse/client/api/Client.java