static <T> T run(Callable<T> task) {
        try {
            return task.call();
        } catch (ClickHouseException e) {
            throw new CompletionException(e);
        } catch (CompletionException e) {
            throw e;
        } catch (Exception e) {
            Throwable cause = e.getCause();
            if (cause instanceof CompletionException) {
                throw (CompletionException) cause;
            } else if (cause == null) {
                cause = e;
            }
            throw new CompletionException(cause);
        }
    }
Runs the given task immediately in current thread. Exception will be wrapped
as {@link CompletionException}.

@param <T>  return type of the task
@param task non-null task to run
@return result which may or may not be null
@throws CompletionException when failed to execute the task
clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseClient.java