Pretty sure that REPLACE is going to be the best way to approach that, without changing the underlying data structure and manipulating the data. I prefer to store my addresses differently, but that is just me. I would store it either in an address1, address2, address3, city, state, zip, country set of columns OR, if I only had 1 column to store it in, store it WITH the newlines and don't substitute them as I do the insert.
But, without changing the underlying data, a REPLACE on the application side (SSRS) is the approach I would take.
This stackoverflow link has tips on how to do it:
In your case, it would be something like:
=Replace(Field!Address.Value, "~", VbCrLf)
NOTE - I am completely guessing on the field name. Change that to match what you have.
The above is all just my opinion on what you should do.
As with all advice you find on a random internet forum - you shouldn't blindly follow it. Always test on a test server to see if there is negative side effects before making changes to live!
I recommend you NEVER run "random code" you found online on any system you care about UNLESS you understand and can verify the code OR you don't care if the code trashes your system.