In fact, the Engine can only be created once.
Your init function creates the Engine, supplies the credentials, starts streaming and subscribes to a table altogether.
If you have to change the password afterwards, then you should do it separately, by acting on the Engine pointer you have saved, and by just
  1. disconnecting (although the previous STREAMING attempt with the wrong credentials probably failed);
  2. setting the new password on the Engine object
  3. requesting STREAMING again

Note that the table subscription is also kept by the library, so you don't need to repeat it when requesting STREAMING the second time.