In 3.x column names are available as soon as the query is prepared. See the C API reference at http://www.sqlite.org/capi3ref.html#sqlite3_column_name
This wasn't implemented in 3.0.2, right? (I didn't test 3.0.3 yet)
I believe I tried that (exactly because I understood that from the docs) but found it didn't work for empty tables.
Regards, ~Nuno Lucas