@SuppressWarnings("unchecked")
    public static <T> ClickHouseArrayValue<T> of(ClickHouseValue ref, T[] value) {
        return ref instanceof ClickHouseArrayValue
                ? (ClickHouseArrayValue<T>) ((ClickHouseArrayValue<T>) ref).set(value)
                : new ClickHouseArrayValue<>(value);
    }
Update value of the given object or create a new instance if {@code ref} is
null.

@param <T>   type of element
@param ref   object to update, could be null
@param value value
@return same object as {@code ref} or a new instance if it's null
clickhouse-data/src/main/java/com/clickhouse/data/value/ClickHouseArrayValue.java