In both of these cases, using arrays, without array pooling is causing unneccessary GC pressure (especially since we are reading from a C array in the first place).
Expose the original C arrays as ReadOnlySpan<sqlite3_value>, and then create a trampoline to allow legacy delegates to work with arrays.
This will allow future code to be able to access the arguments directly without allocation and without copying, whilst working with existing code.