The module name is registered on the database connection specified
by the first parameter. The name of the module is given by the
second parameter. The third parameter is a pointer to
the implementation of the virtual table module. The fourth
parameter is an arbitrary client data pointer that is passed through
into the xCreate and xConnect methods of the virtual table module
when a new virtual table is be being created or reinitialized.

The sqlite3_create_module_v2() interface has a fifth parameter which
is a pointer to a destructor for the pClientData. SQLite will
invoke the destructor function (if it is not NULL) when SQLite
no longer needs the pClientData pointer. The destructor will also
be invoked if the call to sqlite3_create_module_v2() fails.
The sqlite3_create_module()
interface is equivalent to sqlite3_create_module_v2() with a NULL
destructor.