The HBaseDDLExecutor javadocs could use more information. For example, it should be mentioned that everything must be idempotent, with an example given of a failure in one cluster but a success in another. It would also be helpful to document when the methods are called, and the expected state of the table when methods are called. For example, truncate will only be called after a call to 'disableIfEnabled'. A deleteIfNotExists is called when a dataset is deleted, which happens during dataset deletion or namespace deletion, etc.