To integrate arrow's zero copy mechanism, we need significant surgery in value_vector.h. We can use it to achieve zero-copy data sharing internally too. See https://github.com/duckdb/duckdb/blob/7300522cf07177f30a511bd720dcd8c4e6fdf59e/src/common/types/vector.cpp to know how duckdb implements zero-copy semantics internally