public static void writeUnsignedInt64(OutputStream output, BigInteger value) throws IOException {
        writeInt64(output, ClickHouseChecker
                .between(value, ClickHouseValues.TYPE_BIG_INTEGER, BigInteger.ZERO, U_INT64_MAX).longValue());
    }
Write an unsigned long value to given output stream. Due to overhead of
{@link java.math.BigInteger}, this method in general uses more memory and
slower than {@link #writeUnsignedInt64(OutputStream, long)}.

@param output non-null output stream
@param value  unsigned long value
@throws IOException when failed to write value to output stream or reached
                    end of the stream
clickhouse-data/src/main/java/com/clickhouse/data/format/BinaryStreamUtils.java