To clarify, as long as the implementation contract bytecode is the same as what was previously deployed, it will reuse it. See Upgrade contract without changes to storage layout - #2 by ericglau
If you change the implementation contract, it should deploy the new one.
Are you using a real network or a local development network? (If using a local development network, note that Truffle could reuse the same address if the network was reset after a previous run).