# Optional tools

Derby supports optional tools, which you can load and unload by using the `SYSCS_UTIL.SYSCS_REGISTER_TOOL` system procedure as described in the Derby Reference Manual.

- Using the databaseMetaData optional tool
  The databaseMetaData optional tool creates functions and table functions corresponding to most of the methods in the java.sql.DatabaseMetaData interface.
- Using the foreignViews optional tool
  The foreignViews optional tool creates schemas, table functions, and convenience views for all user tables in a foreign database. This can be useful for bulk-importing foreign data.
- Using the luceneSupport optional tool
  The luceneSupport plugin is an optional tool that lets you use Apache Lucene to perform full-text indexing and searching of the contents of Derby text columns.
- Using the simpleJson optional tool
  The simpleJson optional tool creates functions and a user-defined type, which can be used to integrate relational data with data represented in the popular JSON format.
- Using the rawDBReader optional tool
  The rawDBReader optional tool creates functions and views, which can be used to extract data out of a corrupt or unbootable database into a new, healthy database.