SMO Copy database or remove all non-system database objects
You could use SELECT * FROM sys.databases d WHERE d.name = '&lt;target_db_name&gt;'; to obtain the existing settings for the database prior to running the transfer.  Store the results in a DataSet so you can potentially use them later.

If the database does not exist, you'll get no rows returned.  If the database does exist, you could drop the existing database as the first step.  

After you run the TransferData() method, you could apply the necessary configuration changes based on the items in the DataSet.  For instance the recovery_model_desc column contents could be used to set the recovery model by running this code:  ALTER DATABASE &lt;target_db_name&gt; SET RECOVERY = 'xxx';  where xxx is the value contained in the column.