public UnsignedLong multiply(UnsignedLong val) {
        if (this.value == 0L || val == null || val.value == 0L) {
            return ZERO;
        }
        return valueOf(this.value * val.value);
    }
Returns an {@code UnsignedLong} whose value is {@code (this * val)}. If the
result would have more than 64 bits, returns the low 64 bits of the result.

@param val value to be multiplied by this unsigned long, null is treated as
           zero
@return {@code this * val}
clickhouse-data/src/main/java/com/clickhouse/data/value/UnsignedLong.java