Based on CREATE VIRTUAL TABLE syntax, Otherwise Is available clause is not available.

How must i handle the situation once the virtual table already is available without needing DROP TABLE IF Is available?

I wish to use rtree and fts module.

You should use

select DISTINCT tbl_name from sqlite_master where tbl_name = ?

Then bind the virtual table title for your statement and call sqlite3_step(). When you get SQLITE_ROW back, your table is available. To make sure that it's a virtual table, look into the rootpage column for '0'.