Nikolay Konev can you please give some information of what you want to achieve with this addition? There are several problems I see here:
1. I am quite sure a method signature changes are not possible here because of BC break (affects AbstractSchemaManager::dropTable and AbstractPlatform::getDropTableSQL).
2. IF EXISTS clauses are not supported on all platforms and not SQL standard AFAIK.
Possible solutions depending on what you want to do:
1. If you just want to make sure that the DROP statement does not fail because of non-existence in DB you can use AbstractSchemaManager::tryMethod('dropTable', 'table_name_here') which tries to drop the table but does not throw an exception if it failed. Drawbacks here are that other errors besides non-existence are silenced, too and you cannot evaluate if it really got deleted at database side.
2. Use AbstractSchemaManager::dropTable() and catch Doctrine\DBAL\DBALException. Check for the error code with DBALException::getCode() and evaluate it to the DBALException::ERROR_UNKNOWN_TABLE constant (currently only available in master branch and available in 2.5 when released - see https://github.com/doctrine/dbal/pull/364).
3. Use AbstractSchemaManager::tableExists method to check if the table exists before calling AbstractSchemaManager::dropTable
You see there are lots of possibilities already and I am not quite sure if we should bloat the schema manager API with more alias methods (drop*IfExists, create*IfNotExists) that actually don't do anything special.