Hi!
I think dbt always drops and creates again the tables referenced in a model unless you use the incremental materialization and have already a table with the same name as the model. Then you can work something there. On the other hand you can make tests that ensures that you have the required structure but i think dbt is not focused on that kind of scenarios, thats why it does not even supports foreign keys.
This is the link for a related question:
https://discourse.getdbt.com/t/how-to-insert-data-in-existing-tables-using-dbt/
BR,