DBT Snapshot creating duplicate rows even though there's no change in source data

The problem I’m having

I have an incremental model with snowflake incremental strategy delete+insert . Now there’s no if incremental logic defined yet. So basically the table works as full refresh everytime. And everytime a new row is inserted into the snapshot . This creates duplicate rows in snapshot .
Snapshot logic has check all columns. So logically it should not create duplicate rows because column vlues are not at all changing. But still dbt generates different dbt_scd_id each time for the same row whenever it fully refreshes.