public UnsignedLong remainder(UnsignedLong val) {
        return valueOf(Long.remainderUnsigned(value, val == null ? 0L : val.value));
    }
Returns an {@code UnsignedLong} whose value is {@code (this % val)}.

@param val value by which this unsigned long is to be divided, and the
           remainder computed
@return {@code this % val}
@throws ArithmeticException if {@code val} is null or zero.
clickhouse-data/src/main/java/com/clickhouse/data/value/UnsignedLong.java